//
//  HSBasicController.swift
//  HomeSchoolDemo
//
//  Created by 张晓林 on 16/10/8.
//  Copyright © 2016年 张晓林. All rights reserved.
//

import UIKit

class HSBasicController: UITableViewController {
    // 刷新控件
    let refreshC = XLRefreshControl()
    // 记录刷新状态的属性
    var isPull: Bool = false
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // 添加刷新控件
        tableView.addSubview(refreshC)
        // 设置监听
        refreshC.addTarget(self, action: #selector(loadData), for: .valueChanged)
        
    }
    
    // 加载数据
    func loadData() {
        // 开始加载刷新视图
        refreshC.beginRefreshing()
        // 模拟延时
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {[weak self] in
            // 介绍刷新控件
            self?.refreshC.endRefreshing()
            //
            self?.isPull = false
        }
    }
}

// MARK: - Table view data source
extension HSBasicController {
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return 0
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        return UITableViewCell()
    }
    
    // 即将显示某行cell时回调
    override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        // 获得当前行号
        let row = indexPath.row
        // 获得表格视图的总组数
        let section = tableView.numberOfSections - 1
        if row < 0 || section < 0 {
            return
        }
        
        // 获得最后一组的总行数
        let lastRows = tableView.numberOfRows(inSection: section)
        // 当当前调用的行等于表格视图最后一组的总行数一1
        if row == lastRows - 1 && indexPath.section == section && !isPull {
            // 记录刷新状态
            isPull = true
            // 调用数据请求方法
            loadData()
        }
    }
}









